package com.engine.salary.report.entity.param;

import com.engine.salary.common.BaseQueryParam;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.*;

import java.util.Date;
import java.util.List;

/**
 * 薪酬统计报表数据查询参数
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
//"薪酬统计报表数据查询参数
public class SalaryStatisticsReportDataQueryParam extends BaseQueryParam {
    //报表id
    private Long id;

    //统计维度
    private Long dimensionId;

    @JsonIgnore
    //薪资所属月-开始月
    private String salaryStartMonth;

    @JsonIgnore
    // 薪资所属月-终止月
    private String salaryEndMonth;

    @JsonIgnore
    //个税扣缴义务人配置
    private List<Long> taxAgent;

    //薪资账套配置
    @JsonIgnore
    private List<Long> salarySob;

    @JsonIgnore
    //收入所得项目配置
    private List<Integer> incomeCategory;

    @JsonIgnore
    //分部配置
    private List<Long> subCompany;

    @JsonIgnore
    //部门配置
    private List<Long> depart;

    @JsonIgnore
    //职级配置
    private List<Long> grade;

    @JsonIgnore
    // 岗位配置
    private List<Long> position;

    @JsonIgnore
    //人员状态配置
    private List<String> status;

    @JsonIgnore
    //人员
    private List<Long> employee;

    @JsonIgnore
    // 入职日期
    private List<Date> hiredate;

    @JsonIgnore
    // 离职日期
    private List<Date> leavedate;

    //统计单位
    private Integer unitType;

    // 是否是分享报表
    private boolean isShare;

    // "分享批次id
    private Long batchId;

    @Override
    public String toString() {
        return "SalaryStatisticsReportDataQueryParam{" +
                "id=" + id +
                ", dimensionId=" + dimensionId +
                ", salaryStartMonth='" + salaryStartMonth + '\'' +
                ", salaryEndMonth='" + salaryEndMonth + '\'' +
                ", taxAgent=" + taxAgent +
                ", salarySob=" + salarySob +
                ", incomeCategory=" + incomeCategory +
                ", subCompany=" + subCompany +
                ", depart=" + depart +
                ", grade=" + grade +
                ", position=" + position +
                ", status=" + status +
                ", employee=" + employee +
                ", hiredate=" + hiredate +
                ", leavedate=" + leavedate +
                ", unitType=" + unitType +
                ", isShare=" + isShare +
                ", batchId=" + batchId +
                '}';
    }
}
